#!/usr/bin/env node



// 获取命令行参数
const args = process.argv.slice(2);

// 检查参数数量和格式
if (args.length !== 2 || args[0] !== 'cmd') {
    console.error('Usage: node 03-decode.js cmd base64_string');
    process.exit(1);
}

const base64String = args[1];

// 方法一：使用 Buffer
function decodeUsingBuffer(base64String) {
    try {
        const buffer = Buffer.from(base64String, 'base64');
        const utf8String = buffer.toString('utf8');
        console.log('Decoded string (Buffer):', utf8String);
        return utf8String;
    } catch (error) {
        console.error('Failed to decode using Buffer:', error.message);
    }
}

// 方法二：使用 crypto (Node.js内置模块)
// function decodeUsingCrypto(base64String) {
//     try {
//         const crypto = require('crypto');
//         const decoded = crypto.decode(base64String, 'base64');
//         console.log('Decoded string (crypto):', decoded);
//         return decoded;
//     } catch (error) {
//         console.error('Failed to decode using crypto:', error.message);
//     }
// }

// 解码 Base64 编码的字符串
decodeUsingBuffer(base64String);
// decodeUsingCrypto(base64String);